home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch17 / Geometry.bas < prev    next >
BASIC Source File  |  1999-07-03  |  827b  |  25 lines

  1. Attribute VB_Name = "Geometry"
  2. Option Explicit
  3.  
  4. ' Return two perpendicular vectors normal
  5. ' to the vector <Vx, Vy, Vz>.
  6. Public Sub GetLineNormals(ByVal Vx As Single, ByVal Vy As Single, ByVal Vz As Single, ByRef v1x As Single, ByRef v1y As Single, ByRef v1z As Single, ByRef v2x As Single, ByRef v2y As Single, ByRef v2z As Single)
  7. Dim length As Single
  8.  
  9.     ' Normalize the input vector.
  10.     length = Sqr(Vx * Vx + Vy * Vy + Vz * Vz)
  11.     Vx = Vx / length
  12.     Vy = Vy / length
  13.     Vz = Vz / length
  14.  
  15.     ' Get the two vectors.
  16.     If Vx <> 0 Then
  17.         m3Cross v1x, v1y, v1z, Vx, Vy, Vz, 0, 1, 0
  18.     ElseIf Vy <> 0 Then
  19.         m3Cross v1x, v1y, v1z, Vx, Vy, Vz, 0, 0, 1
  20.     Else
  21.         m3Cross v1x, v1y, v1z, Vx, Vy, Vz, 1, 0, 0
  22.     End If
  23.     m3Cross v2x, v2y, v2z, Vx, Vy, Vz, v1x, v1y, v1z
  24. End Sub
  25.